Using Hardware Counters To Improve Dynamic Compilation
نویسندگان
چکیده
In this paper, we describe our project to explore the use of hardware counters to improve triggering techniques for runtime dynamic code recompilation. The Intel Open Runtime Platform (ORP) was chosen as the target Just In Time (JIT) compilation-capable Java Virtual Machine (JVM). The performance counter library (PCL) implemented by Rudolf Berrendorf et al. was used to retrieve real-time micro-architectural level performance values. Only one of these values, the cycle count, was used in this project. Although, the benchmark performance results were not as good as originally anticipated, the work completed for this project has created an infrastructure that can be easily reused and adopted to use other hardware counter values to create improved compilation triggering mechanisms. We introduce a different and potentially better way of performing runtime profiling in comparison to software-only technique used in the original ORP.
منابع مشابه
Combining Model and Iterative Compilation for Program Performance Optimization
The performance gap for high performance applications has been widening over time. High level program transformations are critical to improve applications’ performance, many of which concern the determination of optimal values for transformation parameters, such as loop unrolling and blocking. Static approaches achieve these values based on analytical models that are hard to achieve because of ...
متن کاملMetrology applied to performance analysis using hardware counters
Performance evaluation and analysis are used to understand and improve computer system performance. One common approach is to measure performance indicators of interest during execution of a set of benchmark programs on a given system. Processor architecture, compiler, operating system, etc. and their interaction are often not predictable and can introduce random variability in such measurement...
متن کاملObtaining Dynamic Program Information with Binary Instrumentation
Dynamic information about a program has many uses, such as aiding the programmer in debugging or optimizing his code, helping make code more secure, or helping hardware and systems designers make organizational or tradeoff decisions. Program information is available through a variety of approaches, including visual inspection of the code or its output, compiler output, hardware counters, debugg...
متن کاملFast Hardware Compilation of Behaviors into an FPGA-Based Dynamic Reconfigurable Computing System
This report presents new techniques for architecture and performance driven compilation of software programs into reconfigware (reconfigurable hardware). These new techniques effectively improve on the complex resource sharing approaches typical of High-Level Synthesis algorithms, which are efficient for layout flexible ASICs but are clearly not adequate for reconfigurable devices with pre-defi...
متن کاملHardware Counted Profile-Guided Optimization
Profile-Guided Optimization (PGO) is an excellent means to improve the performance of a compiled program. Indeed, the execution path data it provides helps the compiler to generate better code and better cacheline packing. At the time of this writing, compilers only support instrumentation-based PGO. This proved effective for optimizing programs. However, few projects use it, due to its complic...
متن کامل